home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / lib / mathlib / libconv / EXAMPLES / fex2.f < prev    next >
Encoding:
Text File  |  1994-08-02  |  1.3 KB  |  48 lines

  1. *
  2. * This program illustrates relation between CONVOLUTION and CORRELATION
  3. *
  4. * Correlation is equivalent to convolution with Flipped array
  5. *
  6. #define NPTS 8
  7. #define TMAX (NPTS-1)
  8.  
  9.       Program fex2
  10.       Integer i
  11.       real seq1(0:TMAX), seq2(0:TMAX), cor1(0:TMAX), cor2(0:TMAX)
  12.  
  13. * Initialize Sequences ... seq2 is seq1 shifted by two samples
  14.       seq1(0) = 0.
  15.       seq1(1) = 0.
  16.       seq2(TMAX-1) = 0.
  17.       seq2(TMAX  ) = 0.
  18.       
  19.       do i = 2, TMAX
  20.     seq1(i) = 10. * ( -.3 ** i)
  21.     seq2(i-2) = seq1(i)
  22.       end do
  23. * Correlation
  24.       call scor1d( seq1,1,0,NPTS,seq2,1,0,NPTS,cor1,1,0,NPTS)
  25.  
  26. * Convolution with flipped array
  27. * We actually just call sfir1d with the flipping parameters
  28. * New origin of array is last sample, new increment is -(old increment)
  29.       call sfir1d(seq1,1,0,NPTS,seq2(TMAX),-1,-TMAX,NPTS,
  30.      $            cor2,1,0,NPTS,1.0,0.0)
  31.  
  32. * Print out the Input sequences and the Correlation functions
  33.       write(6,11)
  34.       write(6,12) seq1(0:TMAX)
  35.       write(6,13)
  36.       write(6,12) seq2(0:TMAX)
  37.       write(6,14)
  38.       write(6,12) cor1(0:TMAX)
  39.       write(6,15)
  40.       write(6,12) cor2(0:TMAX)
  41.  11   format('Seq # 1 : ')
  42.  12   format(8f9.5)
  43.  13   format('Seq # 2 : ')
  44.  14   format('Correlation using \"scor1d\" : ')
  45.  15   format('Correlation using \"sfir1d\" : ')
  46.       stop
  47.       end
  48.